package com.ruoyi.hisordadm.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import java.util.Date;
import java.util.Objects;

/**
 * @ClassName OrdersDo
 * @Author samula
 * @Descripe product by com.doctcloud
 * @Data 2025-09-23 1:52
 **/
public class OrdersDo extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @Excel(name = "患者ID")
    private String patientId;
    @Excel(name = "住院标识号")
    private Integer visitId;
    @Excel(name = "医嘱号")
    private Integer orderNo;
    @Excel(name = "医嘱子序号")
    private Integer orderSubNo;
    @Excel(name = "长期标记")
    private Integer repeatIndicator;
    @Excel(name="医嘱类别")
    private String orderClass;
    @Excel(name="医嘱文本")
    private String orderText;
    @Excel(name="医嘱项目代码")
    private String orderCode;
    @Excel(name="单次剂量")
    private Double dosage;
    @Excel(name="计量单位")
    private String dosageUnits;
    @Excel(name="医嘱途径")
    private String administration;
    @Excel(name="持续时间")
    private Integer duration;
    @Excel(name="持续时间单位")
    private String durationUnits;
    @Excel(name="频率描述")
    private String frequency;
    @Excel(name="频率次数")
    private Integer freqCounter;
    @Excel(name="频率间隔")
    private Integer freqInterval;
    @Excel(name="频率间隔单位")
    private String freqIntervalUnit;
    @Excel(name="执行时间描述")
    private String performSchedule;
    @Excel(name="开医嘱医生")
    private String doctor;
    @Excel(name="停医嘱医生")
    private String stopDoctor;
    @Excel(name="开医嘱校对护士")
    private String nurse;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "录入时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enterDateTime;
    @Excel(name="医嘱状态")
    private String orderStatus;
    @Excel(name="药品计价属性")
    private Integer drugBillingAttr;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后执行时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastPerformDateTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后计价时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastAcctingDateTime;

    public OrdersDo() {
    }

    public OrdersDo(String patientId, Integer visitId, Integer orderNo, Integer orderSubNo, Integer repeatIndicator, String orderClass, String orderText, String orderCode, Double dosage, String dosageUnits, String administration, Integer duration, String durationUnits, String frequency, Integer freqCounter, Integer freqInterval, String freqIntervalUnit, String performSchedule, String doctor, String stopDoctor, String nurse, Date enterDateTime, String orderStatus, Integer drugBillingAttr, Date lastPerformDateTime, Date lastAcctingDateTime) {
        this.patientId = patientId;
        this.visitId = visitId;
        this.orderNo = orderNo;
        this.orderSubNo = orderSubNo;
        this.repeatIndicator = repeatIndicator;
        this.orderClass = orderClass;
        this.orderText = orderText;
        this.orderCode = orderCode;
        this.dosage = dosage;
        this.dosageUnits = dosageUnits;
        this.administration = administration;
        this.duration = duration;
        this.durationUnits = durationUnits;
        this.frequency = frequency;
        this.freqCounter = freqCounter;
        this.freqInterval = freqInterval;
        this.freqIntervalUnit = freqIntervalUnit;
        this.performSchedule = performSchedule;
        this.doctor = doctor;
        this.stopDoctor = stopDoctor;
        this.nurse = nurse;
        this.enterDateTime = enterDateTime;
        this.orderStatus = orderStatus;
        this.drugBillingAttr = drugBillingAttr;
        this.lastPerformDateTime = lastPerformDateTime;
        this.lastAcctingDateTime = lastAcctingDateTime;
    }

    public String getPatientId() {
        return patientId;
    }

    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }

    public Integer getVisitId() {
        return visitId;
    }

    public void setVisitId(Integer visitId) {
        this.visitId = visitId;
    }

    public Integer getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(Integer orderNo) {
        this.orderNo = orderNo;
    }

    public Integer getOrderSubNo() {
        return orderSubNo;
    }

    public void setOrderSubNo(Integer orderSubNo) {
        this.orderSubNo = orderSubNo;
    }

    public Integer getRepeatIndicator() {
        return repeatIndicator;
    }

    public void setRepeatIndicator(Integer repeatIndicator) {
        this.repeatIndicator = repeatIndicator;
    }

    public String getOrderClass() {
        return orderClass;
    }

    public void setOrderClass(String orderClass) {
        this.orderClass = orderClass;
    }

    public String getOrderText() {
        return orderText;
    }

    public void setOrderText(String orderText) {
        this.orderText = orderText;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public Double getDosage() {
        return dosage;
    }

    public void setDosage(Double dosage) {
        this.dosage = dosage;
    }

    public String getDosageUnits() {
        return dosageUnits;
    }

    public void setDosageUnits(String dosageUnits) {
        this.dosageUnits = dosageUnits;
    }

    public String getAdministration() {
        return administration;
    }

    public void setAdministration(String administration) {
        this.administration = administration;
    }

    public Integer getDuration() {
        return duration;
    }

    public void setDuration(Integer duration) {
        this.duration = duration;
    }

    public String getDurationUnits() {
        return durationUnits;
    }

    public void setDurationUnits(String durationUnits) {
        this.durationUnits = durationUnits;
    }

    public String getFrequency() {
        return frequency;
    }

    public void setFrequency(String frequency) {
        this.frequency = frequency;
    }

    public Integer getFreqCounter() {
        return freqCounter;
    }

    public void setFreqCounter(Integer freqCounter) {
        this.freqCounter = freqCounter;
    }

    public Integer getFreqInterval() {
        return freqInterval;
    }

    public void setFreqInterval(Integer freqInterval) {
        this.freqInterval = freqInterval;
    }

    public String getFreqIntervalUnit() {
        return freqIntervalUnit;
    }

    public void setFreqIntervalUnit(String freqIntervalUnit) {
        this.freqIntervalUnit = freqIntervalUnit;
    }

    public String getPerformSchedule() {
        return performSchedule;
    }

    public void setPerformSchedule(String performSchedule) {
        this.performSchedule = performSchedule;
    }

    public String getDoctor() {
        return doctor;
    }

    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }

    public String getStopDoctor() {
        return stopDoctor;
    }

    public void setStopDoctor(String stopDoctor) {
        this.stopDoctor = stopDoctor;
    }

    public String getNurse() {
        return nurse;
    }

    public void setNurse(String nurse) {
        this.nurse = nurse;
    }

    public Date getEnterDateTime() {
        return enterDateTime;
    }

    public void setEnterDateTime(Date enterDateTime) {
        this.enterDateTime = enterDateTime;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Integer getDrugBillingAttr() {
        return drugBillingAttr;
    }

    public void setDrugBillingAttr(Integer drugBillingAttr) {
        this.drugBillingAttr = drugBillingAttr;
    }

    public Date getLastPerformDateTime() {
        return lastPerformDateTime;
    }

    public void setLastPerformDateTime(Date lastPerformDateTime) {
        this.lastPerformDateTime = lastPerformDateTime;
    }

    public Date getLastAcctingDateTime() {
        return lastAcctingDateTime;
    }

    public void setLastAcctingDateTime(Date lastAcctingDateTime) {
        this.lastAcctingDateTime = lastAcctingDateTime;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        OrdersDo ordersDo = (OrdersDo) o;
        return Objects.equals(patientId, ordersDo.patientId) && Objects.equals(visitId, ordersDo.visitId) && Objects.equals(orderNo, ordersDo.orderNo) && Objects.equals(orderSubNo, ordersDo.orderSubNo);
    }

    @Override
    public int hashCode() {
        return Objects.hash(patientId, visitId, orderNo, orderSubNo);
    }

    @Override
    public String toString() {
        return "OrdersDo{" +
                "patientId='" + patientId + '\'' +
                ", visitId=" + visitId +
                ", orderNo=" + orderNo +
                ", orderSubNo=" + orderSubNo +
                ", repeatIndicator=" + repeatIndicator +
                ", orderClass='" + orderClass + '\'' +
                ", orderText='" + orderText + '\'' +
                ", orderCode='" + orderCode + '\'' +
                ", dosage=" + dosage +
                ", dosageUnits='" + dosageUnits + '\'' +
                ", administration='" + administration + '\'' +
                ", duration=" + duration +
                ", durationUnits='" + durationUnits + '\'' +
                ", frequency='" + frequency + '\'' +
                ", freqCounter=" + freqCounter +
                ", freqInterval=" + freqInterval +
                ", freqIntervalUnit='" + freqIntervalUnit + '\'' +
                ", performSchedule='" + performSchedule + '\'' +
                ", doctor='" + doctor + '\'' +
                ", stopDoctor='" + stopDoctor + '\'' +
                ", nurse='" + nurse + '\'' +
                ", enterDateTime=" + enterDateTime +
                ", orderStatus='" + orderStatus + '\'' +
                ", drugBillingAttr=" + drugBillingAttr +
                ", lastPerformDateTime=" + lastPerformDateTime +
                ", lastAcctingDateTime=" + lastAcctingDateTime +
                '}';
    }
}
